/********************************************************************************
 *      Copyright:  (C) 2022 dairongan<2974932606@qq.com>
 *                  All rights reserved.
 *
 *       Filename:  socketinit.h
 *    Description:  This head file socketinit
 *
 *        Version:  1.0.0(22/04/22)
 *         Author:  dairongan <2974932606@qq.com>
 *      ChangeLog:  1, Release initial version on "22/04/22 22:05:55"
 *                 
 ********************************************************************************/

#ifndef __SOCKET_H__
#define __SOCKET_H__

/*------------------------------------------connect_socket_client--------------------------------
 *作用： 初始化socket，使用sockfd连接connect
 *参数： 第一个参数为struct sockaddr_in型服务器地址属性，第二个参数为端口号，第三个参数为服务器地址
 *返回值：成功返回sockfd，失败返回小于0的数
 * --------------------------------------------------------------------------------------------*/
extern  int socket_connect_server(struct sockaddr_in serv_addr,int port,char *serv_ip);

/*------------------------------------------socket_start_server--------------------------------
 *作用： 初始化socket，setsockopt释放端口，bind，和listen
 *参数： 第一个参数为端口号，第二个参数为监听地址，如果为NULL的话，就监听INADDR_ANY
 *返回值：成功返回sockfd，失败返回小于0的数
 * --------------------------------------------------------------------------------------------*/
extern int socket_start_server(int serv_port,char *serv_ip);

/*------------------------------------------socket_write--------------------------------
 *作用： 将buf信息write到sockfd
 *参数： 第一个参数为sockfd指针，第二个参数为写入内容的指针，第三个参数为写入长度
 *返回值：成功返回1，失败返回-1
 * --------------------------------------------------------------------------------------------*/
extern int socket_write(int *sockfd,char *buf,int len);

/*------------------------------------------socket_read_divideinfo--------------------------------
 *作用： 接收 sockfd发来的信息放入buf，并拆分给info_temp_t
 *参数： 第一个参数为sockfd指针，第二个参数为读入内容的指针，第三个参数为存放拆分信息的结构体指针
 *返回值：成功返回1，失败返回-1
 * --------------------------------------------------------------------------------------------*/
extern int socket_read_divideinfo(int *sockfd,char *buf,info_temp_t *infor);


/*------------------------------------------socket_term--------------------------------
 *作用： 关闭sockfd并将其置位-1
 *参数： 第一个参数为sockfd指针
 *返回值：成功返回1，失败返回-1
 * --------------------------------------------------------------------------------------------*/
extern int socket_term(int *sockfd);

/*------------------------------------------socket_check_connect--------------------------------
 *作用： 检查sockfd是否断开连接
 *参数： 第一个参数为sockfd
 *返回值：成功返回1，失败返回小于0的值
 * --------------------------------------------------------------------------------------------*/
extern int socket_check_connect(int sockfd);
 
#endif

